home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / netlib / Net_AddrToString.c < prev    next >
C/C++ Source or Header  |  1992-06-09  |  2KB  |  96 lines

  1. /* 
  2.  * Net_AddrToString.c --
  3.  *
  4.  *    Converts a Net_Address into a printable string.
  5.  *
  6.  * Copyright 1990 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that the above copyright
  10.  * notice appear in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  */
  15.  
  16. #ifndef lint
  17. static char rcsid[] = "$Header: /sprite/src/lib/c/netlib/RCS/Net_AddrToString.c,v 1.6 92/06/09 20:54:01 jhh Exp $ SPRITE (Berkeley)";
  18. #endif /* not lint */
  19.  
  20. #include <sprite.h>
  21. #include <stdio.h>
  22. #include <net.h>
  23.  
  24.  
  25. /*
  26.  *----------------------------------------------------------------------
  27.  *
  28.  * Net_AddrToString --
  29.  *
  30.  *    Converts a Net_Address into a printable string.
  31.  *
  32.  * Results:
  33.  *    Pointer to the string.
  34.  *
  35.  * Side effects:
  36.  *    None.
  37.  *
  38.  *----------------------------------------------------------------------
  39.  */
  40.  
  41. char    *
  42. Net_AddrToString(netAddressPtr, buffer)
  43.     Net_Address        *netAddressPtr;    /* Network address. */
  44.     char        *buffer;    /* The string buffer. */
  45. {
  46.     ReturnStatus status = SUCCESS;
  47.     *buffer = '\0';
  48.     switch(netAddressPtr->type) {
  49.     case NET_ADDRESS_ETHER: {
  50.         Net_EtherAddress    etherAddress;
  51.         status = Net_GetAddress(netAddressPtr, (Address) ðerAddress);
  52.         if (status != SUCCESS) {
  53.         break;
  54.         }
  55.         buffer = Net_EtherAddrToString(ðerAddress, buffer);
  56.         break;
  57.     }
  58.     case NET_ADDRESS_ULTRA: {
  59.         Net_UltraAddress    ultraAddress;
  60.         status = Net_GetAddress(netAddressPtr, (Address) &ultraAddress);
  61.         if (status != SUCCESS) {
  62.         break;
  63.         }
  64.         buffer = Net_UltraAddrToString(&ultraAddress, buffer);
  65.         break;
  66.     }
  67.     case NET_ADDRESS_FDDI: {
  68.         Net_FDDIAddress    fddiAddress;
  69.         status = Net_GetAddress(netAddressPtr, (Address) &fddiAddress);
  70.         if (status != SUCCESS) {
  71.         break;
  72.         }
  73.         buffer = Net_FDDIAddrToString(&fddiAddress, buffer);
  74.         break;
  75.     }
  76.     case NET_ADDRESS_INET: {
  77.         Net_InetAddress    inetAddress;
  78.         status = Net_GetAddress(netAddressPtr, (Address) &inetAddress);
  79.         if (status != SUCCESS) {
  80.         break;
  81.         }
  82.         buffer = Net_InetAddrToString(inetAddress, buffer);
  83.         break;
  84.     }
  85.     }
  86.     if (status != SUCCESS) {
  87. #ifdef KERNEL
  88.     return (char*) NIL;
  89. #else
  90.     return NULL;
  91. #endif
  92.     }
  93.     return buffer;
  94. }
  95.  
  96.